The present invention relates to data center infrastructure, and more particularly, this invention relates to providing overlay functionality using conventional virtual switches (vSwitches).
Network virtualization is an emerging data center and cloud computing trend which aims to virtualize a network as seen by end stations in a way that greatly simplifies network provisioning in multi-tenant environments, as well as traditional environments. One of the more common techniques of achieving network virtualization is to use network overlays, where tunnels are established between edge network switches to which end stations, e.g., Virtual Machines (VMs), connect. The tunnel is typically implemented by encapsulating packets transmitted by a source end station into an overlay header that transports the packet from the source switch to a target switch via an internet protocol (IP)-based network (media access control (MAC)-in-IP), or an Ethernet network (MAC-in-MAC). The overlay header includes an identifier (ID) that uniquely identifies the virtual network. The target switch (tunnel end point) strips off the overlay header encapsulation and delivers the original packet to the destination end station via conventional network connections. In addition to this tunneling mechanism, the edge switches participate in an address discovery protocol, which may be learning/flooding based, or lookup-based. Internet Engineering Task Force (IETF) proposals, such as Virtual eXtensible Local Area Network (VXLAN) and Network Virtualization using Generic Routing Encapsulation (NVGRE), propose some network virtualization frame formats and protocols. All current proposals use a 24-bit virtual network identifier (VNID) that is double the size of the 12-bit Virtual Local Area Network (VLAN) ID used in traditional networks. This effectively removes the 4K limit that is imposed if VLANs are used for rudimentary network virtualization (as has been attempted by several solution providers recently).
An overlay network may be implemented using a number of VMs with a virtualization platform controlling the processing of networking packets in and out of each VM and one or more VMs may be associated with the overlay network. A virtualization platform processes the networking traffic associated with each overlay network and/or VM using predefined properties and policies for the corresponding overlay network and/or VM. As the number of overlay networks increases, so does the processing load requirements of the virtualization platform.
Existing network virtualization solutions in the industry are based on modifying the vSwitches within the virtualization platform. These solutions have several disadvantages, such as cost (e.g., this functionality often demands the most expensive license), interoperability issues due to virtualization platform dependency (e.g., different virtualization platforms deploy different techniques to achieve network virtualization, and this means these solutions do not interoperate with each other unless some sort of “translation gateways” are used, and this introduces inefficiencies in the data path), and resource requirements (if implemented within virtualization platforms, these mechanisms take up valuable processor cycles, especially on older hardware that does not support offloads for tunneled packets). Some solutions to this problem either require changes to the virtualization platforms (e.g., implementing the tunnel end point operation in software), or are limited in scale (e.g., only allow approximately 4000 VMs instead of approximately 16 million supported by current overlay solutions implemented on virtualization platforms).
Accordingly, it would be beneficial to have a solution which supports more than 4000 VMs while not requiring changes to existing virtual switches.